package 缓冲流;

import org.junit.Test;

import java.io.*;

/**
 * 缓冲流：可以提高各种流读取数据的速度
 * 实例如下：
 */
public class BufferedStreamDemo {
    public static void main(String[] args) {
        try {
            new File("D:\\私人文件夹\\JavaProjects\\Java基础练习\\IO流\\buffered.txt").createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Test
    public void BufferedInputStreamTest(){
        //创建文件对象
        File f1 = new File("buffered.txt");
        File f2 = new File("buffered2.txt");
        try {
            //创建输入流，输出流（字节流，字符流都可以）
            FileInputStream fis = new FileInputStream(f1);
            FileOutputStream fos = new FileOutputStream(f2);
            //创建缓冲流，必须把输入流，输出流当作参数，传入进去
            BufferedInputStream bis = new BufferedInputStream(fis);
            BufferedOutputStream bos = new BufferedOutputStream(fos);
            //正常进行读取文件
            byte[] arr = new byte[10];
            int len = 0;
            while ((len = bis.read(arr)) != -1){
                //将读取的文件内容，写入到另外一个文件
                bos.write(arr,0,len);
            }
            //关闭流
            // 关闭缓冲流就ok了，里面的输入流，会自动关闭
            bis.close();
            bos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
